1单选假设P为调用过程,Q为被调用过程,程序在IA-32处理器上执行,以下有关过程调用的叙述中,错误
1单选假设P为调用过程,Q为被调用过程,程序在IA-32处理器上执行,以下有关过程调用的叙述中,错误的是()。

A.从P传到Q的实参无需重新分配空间存放

B.从P跳转到Q执行应使用CALL指令

C.C语言程序中的函数调用就是过程调用

D.从Q跳回到Q执行应使用RET指令

2单选以下是有关IA-32的过程调用方式的叙述,错误的是()。

A.EAX、ECX和EDX都是调用者保存寄存器

B.返回地址是CALL指令下一条指令的地址,被保存在栈中

C.入口参数使用栈(stack)传递,即所传递的实参被分配在栈中

D.EBX、ESI、EDI、EBP和ESP都是被调用者保存寄存器

3单选以下是有关IA-32的过程调用所使用的栈和栈帧的叙述,错误的是()。

A.每进行一次过程调用,用户栈从高地址向低地址增长出一个栈帧

B.只能通过将栈指针ESP作为基址寄存器来访问用户栈中的数据

C.过程嵌套调用深度越深,栈中栈帧个数越多,严重时会发生栈溢出

D.从被调用过程返回调用过程之前,被调用过程会释放自己的栈帧

4单选以下是有关C语言程序的变量的作用域和生存期的叙述,错误的是()。

A.不同过程中的非静态局部变量可以同名,是因为它们被分配在不同栈帧中

B.静态(static型)变量和非静态局部(auto型)变量都分配在对应栈帧中

C.因为非静态局部变量被分配在栈中,所以其作用域仅在过程体内

D.非静态局部变量可以和全局变量同名,是因为它们被分配在不同存储区

5单选以下是一个C语言程序代码:intadd(intx,inty){returnx+y;}intcaller(){intt1=100;intt2=200;intsum=add(t1,t2);returnsum;}以下关于上述程序代码在IA-32上执行的叙述中,错误的是()。

A.传递参数时t1和t2的值从高地址到低地址依次存入栈中

B.add函数返回时返回值存放在EAX寄存器中

C.变量sum被分配在caller函数的栈帧中

D.变量t1和t2被分配在caller函数的栈帧中

计算机系统基础(一):程序的表示、转换与链接

南京大学

军职在线答案

大学网课

«
»

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注